<?
//include("./PT_BR.php");
//categorias do Ana-Web

$todas_cat=array("categorias", "catgeracao");

$categorias = array(
        0 => "Na-Web",
        1 => array(	0 => "Aritm&eacute;tica de Ponto Flutuante",
                1 => "Sistema de ponto flutuante->sistemaPF.php",
                2 => "Soma->somaPF.php",
                3 => "Multiplica&ccedil;&atilde;o->multiplicacaoPF.php",
                4 => "Divis&atilde;o->divisaoPF.php",
                5 => "Subtra&ccedil;&atilde;o->subtracaoPF.php"
            ),
        2 => array(	0 => "Aritm&eacute;tica Matricial",
                1 => "Determinante (por Gauss)->determinante.php",
                2 => "Inversa (por Gauss)->inversa.php",
                3 => "Decomposi&ccedil;&atilde;o de matrizes->decmat.php",
                4 => "Matrizes definidas positivas->matdefpos.php",
                5 => "Multiplica&ccedil;&atilde;o->multiplicacao.php",
                6 => "Soma->soma.php",
                7 => "Transposta->transposta.php"
            ),
        3 => array(	0 => "Sistemas de Equa&ccedil;&otilde;es Alg&eacute;bricas Lineares",
                1 => array(	0 => "M&eacute;todos Diretos",
                        1 => array(	0 => "Elimina&ccedil;&atilde;o de Gauss",
                                1 => "Sem pivoteamento->gauss1.php",
                                2 => "Pivoteamento parcial->gauss2.php",
                                3 => "Pivoteamento total->gauss3.php",
                            ),
                        2 => "Decomposi&ccedil;&atilde;o L.U.->ludecomp.php",
                        3 => "Cholesky->cholesky.php"
                    ),
                2 => array (	0 => "M&eacute;todos Iterativos",
                        1 => "Jacobi->jacobi.php",
                        2 => "Gauss Seidel->gauss-seidel.php"
                    )
            ),
        4 => array(	0 => "M&eacute;todos de Interpola&ccedil;&atilde;o",
                1 => "Lagrange->lagrange.php",
                2 => "Newton->newton.php",
                3 => "Splines c&uacute;bicos->spline.php"
            ),
        5 => array(	0 => "Ajuste de dados",
                1 => "M&iacute;nimos quadrados->ajdados1.php"
            ),
        6 => array(	0 => "Resolu&ccedil;&atilde;o de Equa&ccedil;&otilde;es n&atilde;o lineares",
                1 => "M&eacute;todo da Bissec&ccedil;&atilde;o->eqnl2.php",
                2 => "M&eacute;todo da Secante->eqnl1.php",
                3 => "M&eacute;todo de Newton->eqnl3.php"
            ),
        7 => array(	0 => "Sistemas de Equa&ccedil;&otilde;es Alg&eacute;bricas n&atilde;o-lineares",
                1 => "M&eacute;todo de Newton->seqnl.php"
            ),
        8 => array(	0 => "Integrais e Derivadas",
                1 => array(	0 => "Deriva&ccedil;&atilde;o Num&eacute;rica",
                        1 => "Diferen&ccedil;a central->derivada.php"
                    ),
                2 => array(	0 => "Integra&ccedil;&atilde;o Num&eacute;rica",
                        1 => "M&eacute;todo de Richardson->intnum1.php",
                        2 => "M&eacute;todo de Romberg->intnum2.php",
                        3 => "M&eacute;todo de Simpson->intnum3.php",
                        4 => "M&eacute;todo do trapezio->intnum4.php"
                    )
            )
        );
$catgeracao = array(
        0 => "Na-Web",
        1 => array(	0 => "Aritm&eacute;tica de Ponto Flutuante",
                1 => "Sistema de ponto flutuante->gera_prob_ptoflut_sistema_xml.php",
                2 => "Soma->gera_prob_ptoflut_soma_xml.php",
                3 => "Multiplica&ccedil;&atilde;o->gera_prob_ptoflut_multiplicacao_xml.php",
                4 => "Divis&atilde;o->gera_prob_ptoflut_divisao_xml.php",
                5 => "Subtra&ccedil;&atilde;o->gera_prob_ptoflut_subtracao_xml.php"
            ),
        2 => array(	0 => "Aritm&eacute;tica Matricial",
                1 => "Determinante (por Gauss)->gera_prob_matriz_determinante_xml.php",
                2 => "Inversa (por Gauss)->gera_prob_matriz_inversa_xml.php",
                3 => "Matrizes definidas positivas->gera_prob_matriz_defpos_xml.php",
                4 => "Multiplica&ccedil;&atilde;o->gera_prob_matriz_mul_xml.php",
                5 => "Soma->gera_prob_matriz_soma_xml.php",
                6 => "Transposta->gera_prob_matriz_transposta_xml.php"
            ),
        3 => array(	0 => "Sistemas de Equa&ccedil;&otilde;es Alg&eacute;bricas Lineares",
                1 => array(	0 => "M&eacute;todos Diretos",
                        1 => array(	0 => "Elimina&ccedil;&atilde;o de Gauss",
                                1 => "Sem pivoteamento->gera_prob_sela_gauss1_xml.php",
                                2 => "Pivoteamento parcial->gera_prob_sela_gauss2_xml.php",
                                3 => "Pivoteamento total->gera_prob_sela_gauss3_xml.php",
                            ),
                        2 => "Decomposi&ccedil;&atilde;o L.U.->gera_prob_sela_ludecomp_xml.php",
                        3 => "Cholesky->gera_prob_sela_cholesky_xml.php"
                    ),
                2 => array (	0 => "M&eacute;todos Iterativos",
                        1 => "Jacobi->gera_prob_sela_jacobi_xml.php",
                        2 => "Gauss Seidel->gera_prob_sela_gauss-seidel_xml.php"
                    )
            ),
        4 => array(	0 => "M&eacute;todos de Interpola&ccedil;&atilde;o",
                1 => "Lagrange->gera_prob_lagrange_xml.php",
                2 => "Newton->gera_prob_newton_xml.php",
                3 => "Splines c&uacute;bicos->gera_prob_spline_xml.php"
            ),
        5 => array(	0 => "Ajuste de dados",
                1 => "M&iacute;nimos quadrados->gera_prob_ajdados1_xml.php"
            ),
        6 => array(	0 => "Resolu&ccedil;&atilde;o de Equa&ccedil;&otilde;es n&atilde;o lineares",
                1 => "M&eacute;todo da Bissec&ccedil;&atilde;o->gera_prob_eqnl2_xml.php",
                2 => "M&eacute;todo da Secante->gera_prob_eqnl1_xml.php",
                3 => "M&eacute;todo de Newton->gera_prob_eqnl3_xml.php"
            ),
        7 => array(	0 => "Sistemas de Equa&ccedil;&otilde;es Alg&eacute;bricas n&atilde;o-lineares",
                1 => "M&eacute;todo de Newton->gera_prob_seqnl_xml.php"
            ),
        8 => array(	0 => "Integrais e Derivadas",
                1 => array(	0 => "Deriva&ccedil;&atilde;o Num&eacute;rica",
                        1 => "Diferen&ccedil;a central->gera_prob_derivada_xml.php"
                    ),
                2 => array(	0 => "Integra&ccedil;&atilde;o Num&eacute;rica",
                        1 => "M&eacute;todo de Richardson->gera_prob_intnum1_xml.php",
                        2 => "M&eacute;todo de Romberg->gera_prob_intnum2_xml.php",
                        3 => "M&eacute;todo de Simpson->gera_prob_intnum3_xml.php",
                        4 => "M&eacute;todo do trapezio->gera_prob_intnum4_xml.php"
                    )
            )
        );
function mostraarvore($vetor, $espaco, $contador)
{
    $cont = 0;
    foreach ($vetor as $v)
    {
        if (is_array($v)) mostraarvore($v,$espaco+1,$contador.".".$cont);
        else
        {
            $link = explode("->",$v);
            if (count($link) == 1)
            {
                echo str_repeat("&nbsp;&nbsp;&nbsp;&nbsp;",$espaco+1);
                echo "<a href=\"$contador.$cont\">".$link[0]."</a><br>";
            }
            else
            {
                echo str_repeat("&nbsp;&nbsp;&nbsp;&nbsp;",$espaco+2);
                echo "<a href=\"".$link[1]."\">".$link[0]."</a><br>";
            }
        }
        $cont++;
    }
}
mostraarvore($categorias,-1, 0);
function pegacat($matriz,$nivel,$idatual,$idfinal,$idcat) // funcao para exibir o conteudo no frame principal
{
    foreach ($matriz as $id => $submatriz)
    {
        if (!is_array($submatriz)) //se a submatriz nao for um array, entao posso exibir o texto
        {
            $tmp=$idatual.".0"; //variavel para auxiliar na exibicao das secoes
            $tmp2=explode(".",$idatual); //tmp2 ira separar a variavel 'idatual' em partes, (cada indice do vetor eh um indice entre '.')
            $tmp3=$tmp2[0]; //serve para mostrar o titulo da secao, caso ela seja um array
            for ($i=1; $i< (sizeof($tmp2)-1); $i++)
                $tmp3=$tmp3.".".$tmp2[$i];
            $tmp3=$tmp3.".".$id;
            $sim=1; //essa variavel serve para mostrar o caminho todo ate a secao correta
            for ($i=0; $i< (sizeof($tmp2)); $i++)
                if (isset($idfinal{($i*2)}) && $tmp2[$i] != $idfinal{($i*2)}) $sim = 0;
            if ($tmp == $idfinal || $tmp3 == $idfinal || $sim)
            {
                echo str_repeat("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;",(($id)?($nivel+1):$nivel));
                if ($id) //indice != 0 -> paginas
                {
                    $arqphp = explode("->",$submatriz); //separa o arquivo.php do titulo da secao
                    $opcao = explode(".", $arqphp[1]);
                    echo "<a href=index.php?opcao=".$opcao[0]." target=_top>".$arqphp[0]."</a><br><br>";
                }
                else //indice 0 -> titulo da secao
                {
                    if ($idcat == 1)
                        echo "<a href=index.php?opcao=navegacao&catid=$idatual.$id&idcat=1 target=_top><b>$submatriz</b></a><br><br>";
                    else
                        echo "<a href=index.php?opcao=navegacao&catid=$idatual.$id target=_top><b>$submatriz</b></a><br><br>";
                }
            }
        }
        else //se a submatriz for um array, entao devo chamar a funcao recursivamente
        {
            pegacat($submatriz,($nivel+1),$idatual.".$id",$idfinal,$idcat);
        }
    }
}
function navegacat($matriz,$nivel,$idatual,$idfinal,$idcat)
{
    foreach ($matriz as $id => $submatriz)
    {
        if (!is_array($submatriz)) //caso nao seja um array, entao posso mostrar o nome da secao
        {
            $tmp=explode(".",$idatual);
            $sim=1; //variavel que verificara se o $idatual faz parte do caminho para secao desejada
            for ($i=0; $i< (sizeof($tmp)); $i++)
                if (isset($idfinal{($i*2)}) && $tmp[$i] != $idfinal{($i*2)}) $sim = 0;
            $tmp2=$idatual.".$id";
            if ($sim && !$id) //se sim, entao posso mostrar a secao
            {
                if ($idcat == 1)
                    echo "<a href=index.php?opcao=navegacao&catid=$idatual.$id&idcat=1 target=_top><b><font color=ffffff>$submatriz</font></b></a>";
                else
                    echo "<a href=index.php?opcao=navegacao&catid=$idatual.$id target=_top><b><font color=ffffff>$submatriz</font></b></a>";
                if ($tmp2 != $idfinal) echo " &gt; ";
            }
        }
        else //caso seja um array, chamo a funcao recursivamente para o array
        {
            navegacat($submatriz,($nivel+1),$idatual.".$id",$idfinal,$idcat);
        }
    }
}
?>
